<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui">
<ui:composition template="/template/master.xhtml">

	<ui:define name="tituloTamplate">Produto | Pizzaria</ui:define>

	<ui:define name="conteudo">
		<p:layoutUnit position="center">

			<h:form id="form" prependId="false">
				<p:dataTable id="tabela" var="produto"
					value="#{produtoBean.listAll}" paginator="true" rows="10"
					rowsPerPageTemplate="5,10,15"
					emptyMessage="Nenhum registro cadastrado">

					<f:facet name="header">
						<p:commandButton value="Cadastrar" style="float: left;"
							id="modalDialogButton" onclick="PF('dialogCadastrar').show();"
							type="button"></p:commandButton>
						<p:outputLabel value="Lista dos Produtos" />
					</f:facet>

					<p:column headerText="Nome" sortBy="#{produto.nome}">
						<h:outputText value="#{produto.nome}" />
					</p:column>

					<p:column headerText="P. Venda" sortBy="#{produto.precoVenda}">
						<h:outputText value="#{produto.precoVenda}" />
					</p:column>

					<p:column headerText="P. Custo" sortBy="#{produto.precoCusto}">
						<h:outputText value="#{produto.precoCusto}" />
					</p:column>

					<p:column headerText="Opções"
						style="width:10%; text-align: center;">
						<p:commandLink title="Alterar"
							oncomplete="PF('dialogAlterar').show();"
							update=":formAlterar:panelAlterar">
							<h:graphicImage library="images" name="editar.png"></h:graphicImage>
							<f:setPropertyActionListener target="#{produtoBean.produto}"
								value="#{produto}" />
						</p:commandLink>

						<p:commandLink title="Excluir" action="#{produtoBean.excluir}"
							update="tabela">
							<h:graphicImage library="images" name="delete.png" />
							<p:confirm header="Exclusão" message="Deseja realmente excluir?"
								icon="ui-icon-alert" />
							<f:setPropertyActionListener target="#{produtoBean.produto}"
								value="#{produto}" />
						</p:commandLink>

						<p:confirmDialog global="true" severity="alert">
							<p:commandButton value="Yes" type="button"
								styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
							<p:commandButton value="No" type="button"
								styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
						</p:confirmDialog>

					</p:column>
				</p:dataTable>
			</h:form>

			<h:form>
				<p:dialog header="Cadastrar Produto" widgetVar="dialogCadastrar"
					resizable="false">
					<p:panel id="panelCadastrar">
						<h:panelGrid columns="3">
							<h:outputLabel value="Nome: " />
							<p:inputText id="nome" value="#{produtoBean.produto.nome}"
								required="true" requiredMessage="Campo Obrigatório" />
							<p:message for="nome" display="default" />

							<h:outputLabel value="P. Venda:" />
							<p:inputText id="venda" value="#{produtoBean.produto.precoVenda}"
								required="true" requiredMessage="Campo Obrigatório" />
							<p:message for="venda" display="default" />

							<h:outputLabel value="P. Custo: " />
							<p:inputText id="custo" value="#{produtoBean.produto.precoCusto}"
								required="true" requiredMessage="Campo Obrigatório" />
							<p:message for="custo" display="default" />
						</h:panelGrid>

						<h:panelGrid style="width: 300px;">
							<p:panel>
								<p:outputLabel value="Ingrediente: " />
								<p:selectOneMenu id="locationSelector"
									value="#{produtoBean.ingrediente}"
									converter="ingredienteConverter">
									<f:selectItems value="#{ingredienteBean.listaIngrediente}"
										var="ingrediente" itemLabel="#{ingrediente.nome}"
										itemValue="#{ingrediente}" />
								</p:selectOneMenu>

								<p:commandLink actionListener="#{produtoBean.addIngrediente}"
									update="tableIngredientes" immediate="true"
									style="margin-left:10px;">
									<h:graphicImage library="images" name="add.png" />
									<p:ajax process="locationSelector"></p:ajax>
								</p:commandLink>

								<p:dataTable id="tableIngredientes" var="ingrediente"
									value="#{produtoBean.listTableIngrediente}"
									emptyMessage="Nenhum registro" style="width: 450px;">
									
									<p:column headerText="Nome">
										<h:outputText value="#{ingrediente.nome}" />
									</p:column>

									<p:column headerText="Preço"
										style="width: 70px; text-align: center;">
										<h:outputText value="#{ingrediente.preco}" />
									</p:column>

									<p:column style="width: 30px; text-align: center;">
										<p:commandLink title="Excluir"
											action="#{produtoBean.removeIngrediente}"
											update="tableIngredientes" immediate="true">
											<h:graphicImage library="images" name="delete.png" />
											<f:setPropertyActionListener
												target="#{produtoBean.ingrediente}" value="#{ingrediente}" />
										</p:commandLink>
									</p:column>
								</p:dataTable>
							</p:panel>

							<f:facet name="footer">
								<center>
									<p:commandButton type="reset" value="Limpar" />
									<p:commandButton value="Salvar"
										actionListener="#{produtoBean.gravar}"
										update=":form:tabela panelCadastrar"
										oncomplete="if (args &amp;&amp; !args.validationFailed) PF('dialogCadastrar').hide();" />
								</center>
							</f:facet>
						</h:panelGrid>
					</p:panel>
				</p:dialog>
			</h:form>

			<h:form id="formAlterar">
				<p:dialog id="te" header="Alterar Produto" widgetVar="dialogAlterar"
					resizable="false">
					<p:panel id="panelAlterar">
						<h:panelGrid columns="3">
							<h:outputLabel value="Nome: " />
							<p:inputText id="nome" value="#{produtoBean.produto.nome}"
								required="true" requiredMessage="Campo Obrigatório" />
							<p:message for="nome" display="default" />

							<h:outputLabel value="P. Venda:" />
							<p:inputText id="venda" value="#{produtoBean.produto.precoVenda}"
								required="true" requiredMessage="Campo Obrigatório" />
							<p:message for="venda" display="default" />

							<h:outputLabel value="P. Custo: " />
							<p:inputText id="custo" value="#{produtoBean.produto.precoCusto}"
								required="true" requiredMessage="Campo Obrigatório" />
							<p:message for="custo" display="default" />
						</h:panelGrid>

						<h:panelGrid style="width: 300px;">
							<p:panel>
								<p:outputLabel value="Ingrediente: " />
								<p:selectOneMenu id="locationSelector"
									value="#{produtoBean.ingrediente}"
									converter="ingredienteConverter">
									<f:selectItems value="#{ingredienteBean.listaIngrediente}"
										var="ingrediente" itemLabel="#{ingrediente.nome}"
										itemValue="#{ingrediente}" />
								</p:selectOneMenu>

								<p:commandLink actionListener="#{produtoBean.addIngrediente}"
									update="tableIngredientes" immediate="true"
									style="margin-left:10px;">
									<h:graphicImage library="images" name="add.png" />
									<p:ajax process="locationSelector"></p:ajax>
								</p:commandLink>

								<p:dataTable id="tableIngredientes" var="ingrediente"
									value="#{produtoBean.produto.ingredientes}"
									emptyMessage="Nenhum registro" style="width: 450px;">
									<p:column headerText="Nome">
										<h:outputText value="#{ingrediente.nome}" />
									</p:column>

									<p:column headerText="Preço"
										style="width: 70px; text-align: center;">
										<h:outputText value="#{ingrediente.preco}" />
									</p:column>

									<p:column style="width: 30px; text-align: center;">
										<p:commandLink title="Excluir"
											action="#{produtoBean.removeIngrediente}"
											update="tableIngredientes" immediate="true">
											<h:graphicImage library="images" name="delete.png" />
											<f:setPropertyActionListener
												target="#{produtoBean.ingrediente}" value="#{ingrediente}" />
										</p:commandLink>
									</p:column>
								</p:dataTable>
							</p:panel>

							<f:facet name="footer">
								<center>
									<p:commandButton value="Salvar"
										actionListener="#{produtoBean.alterar}"
										update=":form:tabela panelAlterar"
										oncomplete="if (args &amp;&amp; !args.validationFailed) PF('dialogAlterar').hide();" />
								</center>
							</f:facet>
						</h:panelGrid>
					</p:panel>
				</p:dialog>
			</h:form>
		</p:layoutUnit>
	</ui:define>

</ui:composition>
</html>